{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.21 Gases at Sonic Velocity" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Coke oven gas has a specific gravity of 0.42, a header pressure of 125 psig, and is at 140 deg F. It flows through 20 feet of 3\" schedule 40 pipe and is discharged to the atmosphere.\n", "\n", "Find the flow rate in standard cubic feet per hour." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1176795.8398551396 foot ** 3 / hour\n", "922482.9941880251 foot ** 3 / hour\n", "922210.5721001471 foot ** 3 / hour\n", "922210.2011294398 foot ** 3 / hour\n", "922210.2006241237 foot ** 3 / hour\n" ] } ], "source": [ "from fluids.units import *\n", "from math import pi\n", "SG = 0.42\n", "P1 = 125*u.psi + 1.0*u.atmosphere\n", "P2 = 1.0*u.atmosphere\n", "roughness = 0.0018*u.inch\n", "\n", "L = 20*u.foot\n", "mu = 1.8e-5 # good guess\n", "\n", "NPS, Di, Do, t = nearest_pipe(NPS=3, schedule='40')\n", "A = 0.25*pi*Di**2\n", "\n", "fd = 0.0175 # initial guess\n", "P_choke = P_isothermal_critical_flow(P=P1, fd=fd, L=L, D=Di)*(1+1e-10)\n", "P_rat_rho = (0.5*(P1 + P_choke)/(1.0*u.atmosphere)).to_base_units()\n", "\n", "for i in range(5):\n", " rho = 1.2*u.kg/u.m**3*SG*P_rat_rho\n", " m = isothermal_gas(rho, fd, P1=P1, P2=P_choke, L=L, D=Di)\n", " Q_actual = (m/rho).to(u.ft**3/u.hour)\n", " Q_std = Q_actual*P_rat_rho # convert to SI\n", " v = Q_actual/A\n", " Re = rho*v*Di/mu\n", " fd = friction_factor(Re=Re, eD=roughness/Di)\n", " K = exit_normal() + entrance_sharp(method='Crane')\n", " \n", " # Increase fd so it accounts for all the extra losses\n", " fd += K*Di/L\n", " P_choke = P_isothermal_critical_flow(P=P1, fd=fd, L=L, D=Di)*(1+1e-10)\n", " P_rat_rho = (0.5*(P1 + P_choke)/(1.0*u.atmosphere)).to_base_units()\n", " print(Q_std)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result given in Crane is 1028000 ft^3/hour, which is 10% higher than this result.\n", "The crane result assumes isentropic flow whereas this is for isothermal flow. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "THe most accurate answer that can be obtained for this case would be quite a bit better than either solution here. A thermodynamic calculation of the direct conditions of choke:\n", " \n", " speed of sound of the fluid is the speed of the fluid\n", " energy is maintained\n", "However, without the composition of the gas there is no point in trying to obtain a better result." ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 1 }